/**
 * Created by lee_mxue on 17/5/9.
 */
import React from "react";
import ReactDOM from "react-dom";
import wx from "wx";
import AJAX from "../../lib/ajax";
import weixinShare from "../../lib/weixinShare";
import { addErrorListener } from "../../lib/handleError"
import Tools from "../../lib/tools";
const Toast = require('../MyPackage/components/Toast')

require('../../lib/rem');
require('./CabinetSendingDeliver.less');
require('../../styles/common.less');
require('../../styles/resetWeui.less');
require('../../styles/lux.less')
class App extends React.Component {
    constructor(props) {
        super(props);
        this.handleScan = this.handleScan.bind(this);   //打开微信扫一扫
        this.handleOk = this.handleOk.bind(this);   //查询
        this.state = {
            isReady: false, //页面是否加载
            express_info: undefined,    //已选快递公司
            input_express: "",  //输入快递公司
            // input_package_id: undefined,   //输入快递单号

        }
    }

    componentWillMount() {
        var _this = this;
        addErrorListener()()
        //获取localStorage－－－快递公司信息
        var checkPackage_express_info_x = JSON.parse(localStorage.getItem('checkPackage_express_info_x'));
        //获取localStorage－－－快递单号
        var PackageTracker_package_id_x = JSON.parse(localStorage.getItem('PackageTracker_package_id_x'));
        //隐藏分享功能
        // weixinShare.hideAll();
        AJAX.request("get_signature", {
            full_url: window.location.href
        }, (data) => {
            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: data.body.appid, // 必填，公众号的唯一标识
                timestamp: data.body.timestamp, // 必填，生成签名的时间戳
                nonceStr: data.body.noncestr, // 必填，生成签名的随机串
                signature: data.body.signature,// 必填，签名，见附录1
                jsApiList: ["scanQRCode"], // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
            })
            //打开微信扫一扫
            wx.ready(()=> {
                _this.setState({
                    isReady: true
                })
                _this.handleScan();
            })
        })

    }

    componentDidMount() {
        AJAX.appendBaiduAnalysis()
    }

    //toast弹窗
    warn(content) {
        Toast.warn({
            content: content
        })
    }

    //打开微信扫一扫
    handleScan() {
        //获取订单Id
        var order_id = Tools.getParams().order_id;
        //开箱类型 (open_cabinet_type : 1,投递   2，取回快递)
        var open_cabinet_type = Tools.getParams().open_cabinet_type || 1; //默认为投递
        //下单选择的柜体编号
        var refer_cabinet_code = Tools.getParams().cabinet_code;
        var _this = this;

        wx.scanQRCode({
            needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
            scanType: ["barCode", "qrCode"], // 可以指定扫二维码还是一维码，默认二者都有
            success: function (res) {
                let cabinet_code = null
                var result = res.resultStr; // 当needResult 为 1 时，扫码返回的结果
                if(Tools.isValidQRCode(result)) {
                    //扫描的是二维码
                    cabinet_code  = Tools.queryString(result).cabinet_code
                }else {
                    //扫描的是条形码
                    cabinet_code = result.split(",")[1]
                }
                //    扫描成功 根据开箱类型 (open_cabinet_type : 1,投递   2，取回快递)跳转
                // 1,投递： 自动跳转格口选择页
                // 2，取回快递： 自动跳转对应订单详情页
                if (cabinet_code !== refer_cabinet_code) {
                    _this.warn("柜体编号有误")
                } else {
                    //   查询成功成功 根据开箱类型 (open_cabinet_type : 1,投递   2，取回快递)跳转
                    // 1,投递： 自动跳转格口选择页
                    // 2，取回快递： 自动跳转对应订单详情页
                    window.location.href = open_cabinet_type == 1 
                    ? './ChooseCabinetType?cabinet_code=' + cabinet_code + '&order_id=' + order_id 
                    : './MyPackageDeliveryDetail?cabinet_code=' + cabinet_code + '&order_id=' + order_id + '&type=3'
                }
            },
            complete: function () {

            },
            fail: function (error) {
                _this.warn("error")
            }
        });
    }

    //查询
    handleOk() {

        //获取订单Id
        var order_id = Tools.getParams().order_id;
        //开箱类型 (open_cabinet_type : 1,投递   2，取回快递)
        var open_cabinet_type = Tools.getParams().open_cabinet_type || 1; //默认为投递
        var cabinet_code = this.refs.cabinet_code.value     //输入的柜体编号
        var refer_cabinet_code = Tools.getParams().cabinet_code; //默认为投递     //下单选择的柜体编号
        if (cabinet_code == "") {
            this.warn("请输入柜体编号")
        } else if (cabinet_code !== refer_cabinet_code) {
            this.warn("柜体编号有误")
        } else {
            //   查询成功成功 根据开箱类型 (open_cabinet_type : 1,投递   2，取回快递)跳转
            // 1,投递： 自动跳转格口选择页
            // 2，取回快递： 自动跳转对应订单详情页
            window.location.href = open_cabinet_type == 1 ? './ChooseCabinetType?cabinet_code=' + cabinet_code + '&order_id=' + order_id : './MyPackageDeliveryDetail?cabinet_code=' + cabinet_code + '&order_id=' + order_id + '&type=3'
        }
    }

    render() {
        return (
            this.state.isReady &&
            <div className="main">
                <div className="weui-cells">
                    <div className="weui-cell">
                        <div className="weui-cell__bd">
                            <p className="">
                                <input ref="cabinet_code" className="fontSize16px" type="number"
                                       placeholder="请输入设备编号" name="" id=""/>
                            </p>
                        </div>
                        <div className="weui-cell__ft" onClick={this.handleScan}>
                            <i className="iconfont  textBlue icon-saomiaoerweima"></i>
                        </div>
                    </div>
                </div>
                <div className="tips">提示：请扫码设备编号，或者手动输入柜体编号。</div>
                <div className="weui-btn-area yellow">
                    <a className="weui-btn yellow fontSize16px  weui-btn_primary" href="javascript:" id="showTooltips"
                       onClick={this.handleOk}>确认</a>
                </div>
            </div>
        )
    }
}

ReactDOM.render(<App />, document.getElementById('app'));
if (module.hot) {
    module.hot.accept();
}
